DotNetEx Sourcecode Document
0.0.0.0
|
パス文字列クラス(開発中)。 [詳細]
構成 | |
class | PolicyConflictException |
パス同士の比較や連結などの処理でポリシーが競合する時スローされます。 [詳細] | |
class | RootParseException |
ポリシーに設定された正規表現でルートと相対パスを解析するのに失敗する時スローされます。 [詳細] | |
Public 型 | |
enum | TargetOption { None = 0, Relation = 0x1, Root = 0x2, All = TargetOption.Relation | TargetOption.Root } |
処理範囲オプション | |
Public メソッド | |
override bool | Equals (object obj) |
bool | Equals (Path other) |
bool | Equals (System.String other) |
override int | GetHashCode () |
override string | ToString () |
内部のRootとRelationを足したパス全体を文字列として取得します。 | |
int | CompareTo (System.Object obj) |
int | CompareTo (Path other) |
int | CompareTo (System.String other) |
Path () | |
デフォルトコンストラクタ。空のPathクラスをコンストラクトします。 | |
Path (IPathPolicy policy) | |
コンストラクタ。任意のポリシーを設定して空のPathクラスを初期化します。 ポリシーはクラスごとに保持され、コピー時に設定がコピーされていきます。 ポリシーにnullが設定されている場合は、それぞれの処理の都度、PathPolicy.Currentがロードされます。 一括してポリシーを置換するときは、PathPolicyインスタンスを生成してパラメータを調整し、PathPolicy.Currentにセットします。 クラス個別にポリシーを設定する時は、クラスインスタンスのPolicyメンバに任意のPathPolicyインスタンスをセットします。 | |
Path (System.String src) | |
コンストラクタ。文字列から新しいパスを作成します。 | |
Path (System.String src, IPathPolicy policy) | |
コンストラクタ。文字列から新しいパスを作成します。 ポリシーはクラスごとに保持され、コピー時に設定がコピーされていきます。 ポリシーにnullが設定されている場合は、それぞれの処理の都度、PathPolicy.Currentがロードされます。 一括してポリシーを置換するときは、PathPolicyインスタンスを生成してパラメータを調整し、PathPolicy.Currentにセットします。 クラス個別にポリシーを設定する時は、クラスインスタンスのPolicyメンバに任意のPathPolicyインスタンスをセットします。 | |
Path (Path src) | |
コピーコンストラクタ | |
Path (Path src, IPathPolicy policy) | |
コピーコンストラクタ(ポリシーの伝播を止めて別の値を設定します)。 | |
void | Combine (Path combinePath) |
パスを後ろに連結します。 [詳細] | |
void | Combine (System.String combinePath) |
パスを後ろに連結します。 [詳細] | |
Path | Intersect (Path path) |
2つのパスの共通部分(積集合)を取得します。 [詳細] | |
Path | Intersect (System.String path) |
2つのパスの共通部分(積集合)を取得します。 [詳細] | |
Path | RelationTo (Path target) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。 [詳細] | |
Path | RelationTo (Path target, int directorySeparatorIndex) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。 [詳細] | |
Path | RelationTo (System.String target) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。 [詳細] | |
Path | RelationTo (System.String target, int directorySeparatorIndex) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。 [詳細] | |
void | RelativeNormalize () |
相対パスを解決します。 [詳細] | |
void | RelativeNormalize (TargetOption separatorNormalizeTarget) |
相対パスを解決します。 [詳細] | |
void | RelativeNormalize (TargetOption separatorNormalizeTarget, int separatorNormalizeIndex) |
相対パスを解決します。 [詳細] | |
void | SeparatorNormalize () |
セパレータを統一します。 [詳細] | |
void | SeparatorNormalize (TargetOption opt) |
セパレータを統一します。 [詳細] | |
void | SeparatorNormalize (TargetOption opt, System.Char separatorCode) |
セパレータを統一します。 [詳細] | |
void | SeparatorNormalize (TargetOption opt, int separatorIndex) |
セパレータを統一します。 [詳細] | |
System.String | ToAbsoluteSystemDirectoryPath () |
RelativeNormalizeを行ってから末尾にシステムのディレクトリセパレータ(System.IO.Path.DirectorySeparatorChar)を追加し、ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
System.String | ToAbsoluteSystemFilePath () |
RelativeNormalizeを行って、ファイル形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
System.String | ToRelativeDirectoryPath () |
末尾にシステムの相対ディレクトリセパレータ(System.IO.Path.AltDirectorySeparatorChar)を追加し、相対ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
System.String | ToRelativeFilePath () |
相対ファイル形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
System.String | ToSystemDirectoryPath () |
末尾にシステムのディレクトリセパレータ(System.IO.Path.DirectorySeparatorChar)を追加し、ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
System.String | ToSystemFilePath () |
ファイル形式の文字列としてパスの内容を文字列形式に変換します。 [詳細] | |
Static Public メソッド | |
static bool | Equals (Path pathA, Path pathB) |
static bool | Equals (System.String pathA, System.String pathB) |
static bool | Equals (System.String pathA, System.String pathB, IPathPolicy policy) |
static bool | Equals (Path pathA, System.String pathB) |
static int | Compare (Path pathA, Path pathB) |
static int | Compare (Path pathA, System.String pathB) |
static int | Compare (System.String pathA, System.String pathB) |
static int | Compare (System.String pathA, System.String pathB, IPathPolicy policy) |
static implicit | operator Path (System.String src) |
static bool | operator== (Path pathA, Path pathB) |
static bool | operator!= (Path pathA, Path pathB) |
static Path | operator+ (Path pathA, Path pathB) |
static Path | operator+ (Path pathA, System.String pathB) |
static Path | operator+ (System.String pathA, Path pathB) |
static bool | IsNullOrEmpty (Path src) |
パスがnullまたはEmptyに一致するか検査します。 | |
Public 変数 | |
IPathPolicy | Policy |
解析設定を保持するポリシーインターフェースを取得、設定します。 | |
Static Public 変数 | |
static readonly Path | Empty |
空のパスを返します。 | |
Protected メソッド | |
IPathPolicy | AnyPolicy (Path merge) |
コンフリクト例外チェックしつついずれかのPolicyを取得します。メンバへのマージはしません。nullになる時はnullではなくカレントポリシーを取得します。 | |
void | MergePolicy (Path merge) |
コンフリクト例外チェックしつつPolicyメンバを外部Policyとマージします。Policyメンバはnullのままになるケースがあります。 | |
Static Protected メソッド | |
static IPathPolicy | AnyPolicy (Path pathA, Path pathB) |
コンフリクト例外チェックしつついずれかのPolicyを取得します。メンバへのマージはしません。nullになる時はnullではなくカレントポリシーを取得します。 | |
プロパティ | |
Path | Extention [get, set] |
拡張子を取得,設定します。 [詳細] | |
bool | HasExtention [get] |
拡張子を持っているか確認します。 | |
bool | HasParent [get] |
親要素を持っているか確認します。ディレクトリ区切りが存在し、なおかつディレクトリ区切りより上の階層のパスが空ではない時にTrueを返します。 | |
bool | HasRoot [get] |
ルート要素を持っているか取得します。 | |
bool | HasRelation [get] |
相対パス要素(ルート以外の部分)を持っているか取得します。 | |
bool | IsEmpty [get] |
空のパスか確認します。(HasRoot == false) && (HasRelation == false) に等しい値を返します。 | |
bool | IsRelativeOnly [get] |
相対パス(ルート以外の要素)だけで構築されているか取得します。(HasRoot == false) && HasRelationに等しい値を取得します。 | |
bool | IsRootOnly [get] |
ルート要素だけで構築されているか取得します。HasRoot && (HasRelation == false)に等しい値を取得します。 | |
Path | MultiExtention [get, set] |
複数拡張子を取得,設定します。 [詳細] | |
Path | Name [get, set] |
子要素を取得,設定します。 | |
Path | Parent [get, set] |
親要素を取得,設定します。 [詳細] | |
Path | Relation [get, set] |
相対パス(ドライブレター以外の部分)を取得、設定します。 | |
bool | RelativeDirectoryPathExists [get] |
ディレクトリとして存在するか取得します。現在のToRelativeDirectoryPath()が返す文字列をパスとして検査します。 | |
bool | RelativeFilePathExists [get] |
ファイルとして存在するか取得します。現在のToRelativeFilePath()が返す文字列をパスとして検査します。 | |
bool | RelativePathExists [get] |
パスが存在するか取得します。RelativeDirectoryPathExists||RelativeFilePathExistsに等しい値を返します。 | |
Path | Root [get, set] |
ルート(ドライブレター)を取得、設定します。 | |
Path | SingleExtention [get, set] |
拡張子を取得,設定します。 [詳細] | |
bool | SystemDirectoryPathExists [get] |
ディレクトリとして存在するか取得します。現在のToSystemDirectoryPath()が返す文字列をパスとして検査します。 | |
bool | SystemFilePathExists [get] |
ファイルとして存在するか取得します。現在のToSystemFilePath()が返す文字列をパスとして検査します。 | |
bool | SystemPathExists [get] |
パスが存在するか取得します。SystemDirectoryPathExists||SystemFilePathExistsに等しい値を返します。 | |
パス文字列クラス(開発中)。
ここで言うパスとは、ルート要素に相対指定が続く文字列全般を指します。
またポリシーと呼ばれる解析設定(ルートと相対指定を分離するための正規表現パターンや、大文字小文字の無視、ディレクトリ区切りや無効文字郡の設定)が、 DotNetEx.IO.PathPolicyクラスと、読み取り用のDotNetEx.IO.IPathPolicyインターフェースとして提供されます。標準的なポリシーは既にプリセットされていて継承によるカスタマイズも可能です。
具体的にファイルの有無などを問う事はない。
「存在しないパスだから正確に処理ができず例外発生する」といった仕様はありません。一定のルールで記述された文字列を文字列として処理するだけのクラスです。 解析設定が矛盾すると例外が起こりますが、扱う文字列の文法不整合などは例外とみなさず暗黙に整形されます(おおむね「ただの誤入力」のような扱いで要素が削除される傾向が強い)。
つまり、意図しないパスに変形させられるかも
代入するだけで相当数の文法解析工程や補正処理に通されます。とくにWindowsパスとして一般的に使えそうもない部位はガリガリ削られていくので、 もしかすると代入するだけで意図しないパスに変形させられるかもしれません。 その意味では、例えばUNIXなど本当に制限の少ないファイルシステムも含めてしっかりサポートしたい時のパス処理には適しません。 一方で「パスの誤入力のようです。ちょっと修正してみましたが、やっぱり開けませんでした」といった、ヒューマンエラーの解決を含めた対話系の処理を簡単に提供できます。
なお積極的に整形されるのはRelationで、対照的にRootは、最初に文字列解析して分離された後、前後の空白トリムが行われる程度です。その代わり、パス同士の結合処理などRootだけ丸ごと無視されて消える事があります。
PathクラスはPath.PolicyプロパティでPathクラス個別に文字列の解析ポリシーを保持する事が出来ます(コンストラクトでも文字列とPolicyを指定できる)。 個別のPath.Policyは、コピーコンストラクトや部分抽出するプロパティなどで生成した新しい(部分)クローンPathに伝播していく特性があります。この時次のような問題があります。
そのためPath.Policyはnullで省略出来ます。この時はシステム共通の静的なPathPolicy.Currentが参照されます。一方のPath.Policyがnullで、もう一方がnullでなければ、nullでない方のPath.Policyが使用されます。 どちらのPath.Policyもnullではなく、異なるポリシーインスタンスを参照する時だけ衝突してPolicyConflictExceptionがスローされます。よって次のようなスタイルが推奨されます。
Windowsのドライブ指定から始まるパスとUNCパス、あるいはスキーム指定の付いたURIなどをだいたい画一的に(少なくとも例外をスローせずに) 管理できるポリシーが設定されています。
ルート以外は全てRelationとして認識されます
標準の解析ポリシーでは、最初のディレクトリセパレータは常にルート側に吸収されています。なおこの標準の解析ポリシーが一般的パス書式の中で問題になるケースとしては、UNIXの環境変数のパス設定のように、 コロンを使って複数のパスを連結した文字列があります。これをそのまま代入すると、最後のコロンが出現するまでの部分が長大なRootとして解析されます。 このケースでは新しく専用のポリシーを作って調整するか、あらかじめSplitしてください。
また簡易式ではないURL形式で、ユーザー名やパスワードあるいはポート番号などを含めるフォーマットも対応していません。
末尾のディレクトリセパレータは常に削除
パス文字列だけではファイルとフォルダの区別はありません。ルート要素を除き、末尾のディレクトリセパレータは常に削除されます。
例)"C:\folder\" >> "C:\folder"
ディレクトリ/ファイル要素名のトリム
ルート要素を除き、相対パス中のディレクトリ/ファイル要素名の前後にある空白は常にトリムされます。
例)"C:\ folder \" >> "C:\folder"
連続するディレクトリセパレータの削除
ルート要素を除き、相対パス部分で出現する連続セパレータは全て最初の一つだけが残り、他は削除されます(空白のディレクトリ名をはさんでも連続するセパレータとみなされます)。
例)"\\folder\ /hoge" >> "\\folder\hoge"
末尾の無為な拡張子セパレータ(またはその連続)の削除と、例外的に保護されるケース。
Windows環境では、「ファイルパスの末尾に拡張子区切りのドットと空白が連続すると無視される(その名前で作る事も出来ない)」というルールがあります。 さらに言えば、"C:\hoge.txt.."というパスで"c:\hoge.txt"を開く事が出来ます。 このため比較処理を行う場合には"C:\hoge.txt"と"C:\hoge.txt.."は一致する方が望ましくなり、Pathクラスでは、文字列を代入した時点で末尾の..(ポリシーで指定された拡張子区切り、またはその連続)が削除されるようになっています。 ただし、相対パスを意味する.や..も存在し、末尾の無為な拡張子区切りと判別できません。 なのでポリシーによって指定された相対パスのパターンとディレクトリ/ファイル名が前方一致する時、それらの最長文字数だけは無為な拡張子とはみなされないようになります。 つまり"C:\... ."は"C:\.."になり、"C:\..hoge. . .\.parent\test.txt..."は"C:\..hoge\.parent\test.txt"になります。
なおこの前置相対パス保護機構は、字句解析などを挟まず単純な一致部分保護しか行いません(大文字小文字無視のフラグだけは反映されます)。 よって"C:\ . .hoge. . ."は"C:\. .hoge"になりますが、"C:\ . . . . ."は"C:\."になります(スペースを挟むため..は一致せず最初の1ドットだけ一致保護されて残りの部分は末尾無為ドットとして削除される)。 またこの前置相対パス保護機構は、Pathインスタンスをコンストラクトする時のRelation部分の分離解析時だけで作用します。Root部分では初期化も含めてこのような整形処理は通されません。
void DotNetEx.IO.Path.Combine | ( | Path | combinePath) |
パスを後ろに連結します。
現在の自分のRelationの後ろにcombinePath.Relationが連結します。combinePath側のパスのルート要素は無視されます。 接続時にはセパレータ挿入チェックが行われます。相対文法は解決されずそのままデータに残ります。 自身のPolicyがnullである時は連結パス側のPolicyが自分のポリシーにマージされます。
PolicyConflictException | 両方ともPolicyがnullでなく、それぞれ違うPolicyインスタンスを参照している |
void DotNetEx.IO.Path.Combine | ( | System.String | combinePath) |
パスを後ろに連結します。
現在の自分のRelationの後ろにcombinePath.Relationが連結します。combinePath側のパスのルート要素は無視されます。 接続時にはセパレータ挿入チェックが行われます。相対文法は解決されずそのままデータに残ります。 自身のPolicyがnullである時は連結パス側のPolicyが自分のポリシーにマージされます。
PolicyConflictException | 両方ともPolicyがnullでなく、それぞれ違うPolicyインスタンスを参照している |
2つのパスの共通部分(積集合)を取得します。
ポリシーにディレクトリセパレータが設定されていない場合
一文字単位で比較し、一致した部分までのパスが返されます。
ディレクトリセパレータが設定されている場合
ディレクトリ単位で比較し、一致した部分までのパスが返されます。
Path DotNetEx.IO.Path.Intersect | ( | System.String | path) |
2つのパスの共通部分(積集合)を取得します。
ポリシーにディレクトリセパレータが設定されていない場合
一文字単位で比較し、一致した部分までのパスが返されます。
ディレクトリセパレータが設定されている場合
ディレクトリ単位で比較し、一致した部分までのパスが返されます。
自分のパスから、目標とするパスへ向かう相対パスを生成します。
自分のパスから、目標とするパスへ向かう相対パスを生成します。
[in] | directorySeparatorIndex | 相対パスを生成するのに使用するセパレータのインデックス。範囲外のときは最初のディレクトリセパレータ。 |
Path DotNetEx.IO.Path.RelationTo | ( | System.String | target) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。
Path DotNetEx.IO.Path.RelationTo | ( | System.String | target, |
int | directorySeparatorIndex | ||
) |
自分のパスから、目標とするパスへ向かう相対パスを生成します。
[in] | directorySeparatorIndex | 相対パスを生成するのに使用するセパレータのインデックス。範囲外のときは最初のディレクトリセパレータ。 |
void DotNetEx.IO.Path.RelativeNormalize | ( | ) |
相対パスを解決します。
ディレクトリ/ファイル名要素がPolicy.RelativeCurrentDirectoryNameに完全に一致する階層は削除され、 Policy.RelativeParentDirectoryNameに完全に一致する階層があれば、その階層と一つ上位の階層が削除されます。 ルートまで戻ってなおPolicy.RelativeParentDirectoryNameが記述されていても例外は生じず、ルートパスを返します。 ポリシーのパラメータで、ディレクトリセパレータ設定がnullやEmptyだった時はなにもせずに処理に返します。セパレータの統一処理は行われません。
void DotNetEx.IO.Path.RelativeNormalize | ( | TargetOption | separatorNormalizeTarget) |
相対パスを解決します。
ディレクトリ/ファイル名要素がPolicy.RelativeCurrentDirectoryNameに完全に一致する階層は削除され、 Policy.RelativeParentDirectoryNameに完全に一致する階層があれば、その階層と一つ上位の階層が削除されます。 ルートまで戻ってなおPolicy.RelativeParentDirectoryNameが記述されていても例外は生じず、ルートパスを返します。 ポリシーのパラメータで、ディレクトリセパレータ設定がnullやEmptyだった時はなにもせずに処理に返します。セパレータの統一処理は行われません。 また引数を渡してセパレータの統一処理も同時に行います。ポリシーに設定されたDirectorySeparatorsの最初のセパレータ文字に統一されます。
[in] | separatorNormalizeTarget | セパレータの統一処理を行う部分を指定します。SeparatorNormalizeのoptオプションと同じです。 |
void DotNetEx.IO.Path.RelativeNormalize | ( | TargetOption | separatorNormalizeTarget, |
int | separatorNormalizeIndex | ||
) |
相対パスを解決します。
ディレクトリ/ファイル名要素がPolicy.RelativeCurrentDirectoryNameに完全に一致する階層は削除され、 Policy.RelativeParentDirectoryNameに完全に一致する階層があれば、その階層と一つ上位の階層が削除されます。 ルートまで戻ってなおPolicy.RelativeParentDirectoryNameが記述されていても例外は生じず、ルートパスを返します。 ポリシーのパラメータで、ディレクトリセパレータ設定がnullやEmptyだった時はなにもせずに処理に返します。 また引数を渡してセパレータの統一処理も同時に行うことが出来ます。
[in] | separatorNormalizeTarget | SeparatorNormalizeのoptオプションと同じです。 |
[in] | separatorNormalizeIndex | SeparatorNormalizeのseparatorIndexオプションと同じです。 |
void DotNetEx.IO.Path.SeparatorNormalize | ( | ) |
セパレータを統一します。
ポリシーには複数のセパレータを許容できるよう設定できますが、SeparatorNormalize()は、代入されたパス上にあらわれるセパレータを置換してひとつのセパレータ文字に統一します。
引数のないSeparatorNormalize()は、Relation部分だけを標準のセパレータ文字(ポリシーに設定されたセパレータ文字配列の先頭)に統一します。
void DotNetEx.IO.Path.SeparatorNormalize | ( | TargetOption | opt) |
セパレータを統一します。
[in] | opt | セパレータを統一する部分指定 |
ポリシーには複数のセパレータを許容できるよう設定できますが、SeparatorNormalize()は、代入されたパス上にあらわれるセパレータを置換してひとつのセパレータ文字に統一します。
インデックス指定のないSeparatorNormalize()は、標準のセパレータ文字(ポリシーに設定されたセパレータ文字配列の先頭)に統一します。
void DotNetEx.IO.Path.SeparatorNormalize | ( | TargetOption | opt, |
System.Char | separatorCode | ||
) |
セパレータを統一します。
[in] | opt | セパレータを統一する部分指定 |
[in] | separatorCode | 統一して残すセパレータ文字。Policy.DirectorySeparatorsにseparatorCodeが見つからなければ何もしません。 |
ポリシーには複数のセパレータを許容できるよう設定できますが、SeparatorNormalize()は、代入されたパス上にあらわれるセパレータを置換してひとつのセパレータ文字に統一します。
void DotNetEx.IO.Path.SeparatorNormalize | ( | TargetOption | opt, |
int | separatorIndex | ||
) |
セパレータを統一します。
[in] | opt | セパレータを統一する部分指定 |
[in] | separatorIndex | 統一して残すセパレータ文字のインデックス。このインデックスでPolicy.DirectorySeparatorsを参照します。範囲外のときは0番目の要素を使用します。 |
ポリシーには複数のセパレータを許容できるよう設定できますが、SeparatorNormalize()は、代入されたパス上にあらわれるセパレータを置換してひとつのセパレータ文字に統一します。
System.String DotNetEx.IO.Path.ToAbsoluteSystemDirectoryPath | ( | ) |
RelativeNormalizeを行ってから末尾にシステムのディレクトリセパレータ(System.IO.Path.DirectorySeparatorChar)を追加し、ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムのディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムのディレクトリセパレータを含まなくても統一します)。
System.String DotNetEx.IO.Path.ToAbsoluteSystemFilePath | ( | ) |
RelativeNormalizeを行って、ファイル形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムのディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムのディレクトリセパレータを含まなくても統一します)。
System.String DotNetEx.IO.Path.ToRelativeDirectoryPath | ( | ) |
末尾にシステムの相対ディレクトリセパレータ(System.IO.Path.AltDirectorySeparatorChar)を追加し、相対ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムの相対ディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムの相対ディレクトリセパレータを含まなくても統一します)。
System.String DotNetEx.IO.Path.ToRelativeFilePath | ( | ) |
相対ファイル形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムの相対ディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムの相対ディレクトリセパレータを含まなくても統一します)。
System.String DotNetEx.IO.Path.ToSystemDirectoryPath | ( | ) |
末尾にシステムのディレクトリセパレータ(System.IO.Path.DirectorySeparatorChar)を追加し、ディレクトリ形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムのディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムのディレクトリセパレータを含まなくても統一します)。
System.String DotNetEx.IO.Path.ToSystemFilePath | ( | ) |
ファイル形式の文字列としてパスの内容を文字列形式に変換します。
ポリシーにDirectorySeparatorsが登録されていれば、それらは全てシステムのディレクトリセパレータに統一されます (SeparatorNormalize()とは異なり、DirectorySeparatorsがシステムのディレクトリセパレータを含まなくても統一します)。
|
getset |
拡張子を取得,設定します。
Policy.IsMultiExtentionの設定によって、Multi/SingleExtentionが切り替わります。
|
getset |
複数拡張子を取得,設定します。
.bmp.png のような複数の拡張子を扱う時に使用します。.pngのように最後の一つだけを扱う時はSingleExtentionを使用してください。
MultiExtentionでは、拡張子の前にあるドットは可能な限り長く取得します。
例)test..bmp..png >> MultiExtention="..bmp..png" SingleExtention=".png"
|
getset |
親要素を取得,設定します。
取得する時、ディレクトリ区切りがない時には空の文字列が返ります。
|
getset |
拡張子を取得,設定します。
.bmp.png のような複数の拡張子を扱う時はMultiExtentionを使用してください。
SingleExtentionでは、拡張子の前にあるドットは1文字だけ取得します。
例)test..bmp..png >> MultiExtention="..bmp..png" SingleExtention=".png"